<?php

namespace App\Models\Setting;

use App\Models\Common\BaseModel;

class Setting extends BaseModel
{
    const TABLE_NAME = 'settings';
    protected $table = self::TABLE_NAME;

    public $casts = [
        'data' => 'array'
    ];

    protected $hidden = [];

    const CATEGORY_SITE = 'site'; // 站点

    const CATEGORY_WECHAT = 'wechat'; // 公众号

    const CATEGORY_WECHAT_TEMPLATE = 'wechat_template'; // 模板消息
    const WYGL_ID = 'OPENTM204594069';
    const KET_WECHAT_TEMPLATES = [
        'park_enter' => [
            'name' => '入场通知',
            'template_name' => '物业管理通知',
            'template_code' => self::WYGL_ID
        ]
    ];

    const CATEGORY_WMP_APP = 'wmp_app'; // 小程序-车主端
    const CATEGORY_WMP_ADMIN = 'wmp_admin'; // 小程序-管理端
    const CATEGORY_WMP_MERCHANT = 'wmp_merchant'; // 小程序-商户端

    // 车场配置
//    const CATEGORY_SPACE = 'space'; // 车位
//    const KEY_TOTAL_SPACE = 'total_place';
//    const KEY_TOTAL_TEP_SPACE = 'total_tem_place';
//    const KEY_TOTAL_MTH_SPACE = 'total_mth_place';
//    const KEY_HOLIDAY_TOTAL_TEP_SPACE = 'holiday_total_tem_space';
//    const KEY_INIT_TEM_CARS = 'init_tem_car';
//    const KEY_INIT_MTH_CARS = 'init_mth_car';
//    const KEY_NO_TEM_SPACE_ALLOW = 'no_tem_place_allow';
//    const KEY_NO_MTH_SPACE_ALLOW = 'no_mth_place_allow';

    const CATEGORY_MTH_SETTING = 'mth_setting'; // 月租配置
    const KEY_APP_APPLY_MTH_CARD_APPLY = 'app_apply_mth_card'; // 用户申请月卡

    const CATEGORY_CHARGE_SETTING = 'charge_setting'; // 收费参数
    const KEY_FREE_STAY_AFTER_CHARGE = 'free_stay_after_charge'; // 免费离场时间
    const KEY_MTH_EXPIRED_RENEW_FROM = 'mth_expired_renew_from'; // 月租车过期后续费起始时间 expired_at到期时间/today当前时间
    const KEY_MTH_STAY_OUT_CHARGE = 'mth_stay_out_charge'; // (内场)月租车外场停留是否计费
    const KEY_MTH_STAY_OUT_FREE_TIME = 'mth_stay_out_free_time'; // (内场)月租车外场停留免费时间(分钟)
    const KEY_MTH_EXPIRED_CHARGE = 'mth_expired_charge'; // 月租车过期计费

    const CATEGORY_PASS_SETTING = 'pass_setting'; // 通行参数
    const KEY_TEM_INTO_TYPE = 'tem_into_type'; // 临时车入场规则 carno/qrcode/white
    const KEY_TEM_INTO_LIMIT_TIMES = 'tem_into_limit_times'; // 临时车入场限制时间段
    const KEY_TEM_INTO_LIMIT_NOTICE_AT = 'tem_into_limit_notice_at'; // 临时车出场提醒时间
    const KEY_TEM_INTO_LIMIT_NOTICE_RATE = 'tem_into_limit_notice_rate'; // 临时车出场提醒间隔(分钟)
    const KEY_TEM_INTO_LIMIT_NOTICE_NUM = 'tem_into_limit_notice_num'; // 临时车出场提醒次数(次/天)
    const KEY_HOLIDAY_ABLE = 'holiday_able'; // 启用假日模式
    const KEY_HOLIDAY_TEM_INTO_ABLE = 'holiday_tem_into_able'; // 假日模式-临时车可入场
    const KEY_HOLIDAY_TEM_NO_SPACE_INTO_ABLE = 'holiday_tem_no_space_into_able'; // 假日模式-临时车位已满可入场
    const KEY_HOLIDAY_TEM_INTO_TIMES = 'holiday_tem_into_times'; // 假日模式-临时车限制时间段
    const KEY_TEM_INTO_ALLOW_CAR_NO_TYPE = 'tem_into_allow_car_no_type'; // 临时车入场-可入场车牌类型
    const KEY_MTH_NO_SPACE_INTO_ABLE = 'mth_no_space_into_able'; // 月租车车位已满可入场 // 废弃
    const KEY_MTH_INTO_LIMIT_TIME = 'mth_into_limit_time'; // 月租车入场限制时间段
    const KEY_MTH_INTO_LIMIT_BEGIN = 'mth_into_limit_begin'; // 月租车入场限制时间段-起
    const KEY_MTH_INTO_LIMIT_END = 'mth_into_limit_end'; // 月租车入场限制时间段-止
    const KEY_MTH_EXPIRED_LED_CONTENT = 'mth_expired_led_content'; // 月租车过期播报/显示内容
    const KEY_MTH_EXPIRED_LED_DAY = 'mth_expired_led_day'; // 月租车过期播报/显示天数
    const KEY_FREE_CAR_NO_TYPE = 'free_car_no_type'; // 免费通行车牌类型 1警车车牌2军车车牌3使馆车牌
    const KEY_NO_ENTER_LOG_PASS = 'no_enter_log_pass'; // 无进场记录出场放行 0不放行1放行
    const KEY_NO_PLATE_INTO_CHECK_LOG = 'no_plate_into_check_log'; // 无牌车入场-验证识别记录
    const KEY_NO_PLATE_CODE_ABLE = 'no_plate_code_able'; // 无牌车可扫码入场
    const KEY_NO_PLATE_REPEAT_INTO = 'no_plate_repeat_into'; // 无牌车可重复入场 // 废弃
    const KEY_MANY_SPACE_TEM_ENTER_OUT_ABLE = 'many_space_tem_enter_out_able'; // 多位多车临时车车位已满可进外场
    const KEY_MANY_SPACE_TEM_ENTER_IN_ABLE = 'many_space_tem_enter_in_able'; // 多位多车临时车车位已满可进内场
    const KEY_MANY_SPACE_TEM_INTO_TYPE = 'many_space_tem_into_type'; // 多位多车临时车开闸模式 auto自动开闸/manual人工开闸 冲突废弃

    const CATEGORY_LED_SETTING = 'led_setting'; // 屏显参数
    const KEY_MTH_IMPENDING_NOTICE_DAYS = 'mth_impending_notice_days'; // 月租车到期前提醒天数
    const KEY_MTH_MAX_RES_DAYS = 'mth_max_res_days'; // 月租车播报最大剩余天数
    const KEY_CAR_MSG_STAY_TIME = 'car_msg_stay_time'; // 车牌信息在屏上的显示时间(秒)
    const KEY_RES_SPACE_TYPE = 'res_space_type'; // 余位内容 tem临时车位/mth月租车位/total总车位

    const CATEGORY_CHARGE_DISCOUNT = 'charge_discount'; // 充电减免
    const KEY_CHARGE_DISCOUNT_ABLE = 'charge_discount_able'; // 充电减免开关
    const KEY_CHARGE_DISCOUNT_APPID = 'charge_discount_appid'; // 充电减免-参数appid
    const KEY_CHARGE_DISCOUNT_LIMIT_DURATION = 'charge_discount_limit_duration'; // 充电时长(分钟)
    const KEY_CHARGE_DISCOUNT_TYPE = 'charge_discount_type'; // 充电减免类型 amount金额/time时长
    const KEY_CHARGE_DISCOUNT_VALUE = 'charge_discount_value'; // 充电减免值

    // 节假日配置 // 废弃
    const CATEGORY_HOLIDAY = 'holiday';
    const KEY_WEEKEND_HOLIDAY = 'weekend_holiday';

    // 小程序
    const CATEGORY_WMP_QR_CODE = 'wmp_qrcode'; // 小程序码
    const CATEGORY_WMP_APP_INDEX = 'wmp_app_index'; // 车主端首页
    const CATEGORY_WMP_APP_OUT = 'wmp_app_out'; // 车主端预付码
    const CATEGORY_WMP_ADMIN_INDEX = 'wmp_admin_index'; // 管理端首页
    const CATEGORY_WMP_MERCHANT_INDEX = 'wmp_merchant_index'; // 商户端首页

    // 商户配置
    const CATEGORY_MERCHANT_RECHARGE = 'merchant_recharge'; // 商户充值
    const KEY_PACKAGE = 'package'; // 充值套餐

    // 信联ETC
    const CATEGORY_XINLIAN_ETC = 'xinlian_etc';
    const KEY_XINLIAN_ETC_ABLE = 'xinlian_etc_able';
    const KEY_XINLIAN_ETC_APPID = 'xinlian_etc_appid';
    const KEY_XINLIAN_ETC_PRIVATE_KEY = 'xinlian_etc_private_key';
    const KEY_XINLIAN_ETC_GATEWAY = 'xinlian_etc_gateway';
    const KEY_XINLIAN_ETC_MODE = 'xinlian_etc_mode'; // 模式:noSensePay无感支付/cloudFee云端扣费

    // 城商行ETC
    const CATEGORY_EBANK_ETC = 'ebank_etc';
    const KEY_EBANK_ETC_ABLE = 'ebank_etc_able';
    const KEY_EBANK_ETC_CHANNLID = 'ebank_etc_channlid';
    const KEY_EBANK_ETC_APPID = 'ebank_etc_appid';
    const KEY_EBANK_ETC_MCHNT_NO = 'ebank_etc_mchnt_no';
    const KEY_EBANK_ETC_MCHNT_CD = 'ebank_etc_mchnt_cd';
    const KEY_EBANK_ETC_TERM_NO = 'ebank_etc_term_no';
    const KEY_EBANK_ETC_DURA_NM = 'ebank_etc_dura_nm';
    const KEY_EBANK_ETC_PUB_PATH = 'ebank_etc_pub_path';
    const KEY_EBANK_ETC_PRI_PATH = 'ebank_etc_pri_path';
    const KEY_EBANK_ETC_PRI_PWD = 'ebank_etc_pri_pwd';
    const KEY_EBANK_ETC_GATEWAY = 'ebank_etc_gateway';

    // 同程接口
    const CATEGORY_TS_API = 'ts_api';
    const CATEGORY_TS_API_ABLE = 'ts_api_able'; // 同程接口开关
    const CATEGORY_TS_API_APPID = 'ts_api_appid'; // 同程接口-参数appid
    const CATEGORY_TS_API_SECRET = 'ts_api_secret'; // 同程接口-参数secret

    // 逃费配置
    const CATEGORY_ESCAPED_TOLL = 'escaped_toll';
    const KEY_ESCAPED_TOLL_AUTO_ADD_CAR_BLACK = 'escaped_toll_auto_add_car_black'; // 逃费自动拉黑开关
    const KEY_ESCAPED_TOLL_LIMIT_AMOUNT = 'escaped_toll_limit_amount'; // 逃费累计金额
}
